Generally, a web service is a method of communication between two computer devices over a network. In the context of the Internet, a web service has an interface described in a machine-processable format, such as the Web Service Description Language (WSDL). Other systems interact with the web service in a manner defined by its interface using standardized protocols, such as the Simple Object Access Protocol (SOAP). Data sent and received are typically conveyed using HTTP with an XML serialization in conjunction with other web-related standards. Web services allow different software systems to exchange data with each other by defining a service requester and a service provider. The WSDL interface can define how the service requester can request data from the service provider, which specific parameters are required as part of the request, and the structure of data produced by the service provider.
Recently, web services have been moving to simpler representational state transfer (REST)-based communications. In conforming with REST concepts, APIs do not require XML-based Web service protocols (e.g., SOAP and WSDL) to support their interfaces. REST is a simpler alternative to SOAP/WSDL-based services, and represents a coordinated set of constraints for creating scalable web services and maintainable architectures.